A typical computer system includes hardware and software. The hardware includes functionality to execute the instructions defined in the software. The combination of the hardware and the software allows the user to perform various tasks, such as play games, perform word processing applications, perform geological modeling of a region, and/or perform other such tasks.
One type of software is an application. The application provides the user with the ability to perform such tasks as play games, browse the internet, and perform other such tasks. Applications execute in an execution environment of an operating system. Specifically, the operating system is a type of software that provides an interface between hardware and applications, enforces the sharing of the computer system hardware and software resources, and coordinates the performance of various tasks. Thus, the operating system is a type of software that manages the execution of the computer system.
Execution of the operating system is initiated during a boot process. The following is the typical process to perform to initiate the execution of the operating system. When power is provided to a computer system, firmware on the computer system starts executing. Firmware is a program that is stored in a fixed location of read only memory (ROM). Because of the fixed location, the processor of the computer system is able to obtain instructions from the fixed location of the firmware when power is provided to the processor. When executed, the firmware starts execution of a program called a boot loader. The boot loader is a small program designed to find and initiate execution of the operating system.
In order to initiate the execution of the operating system, the boot loader searches for a boot image containing the operating system. Specifically, the boot image includes a root file system with the files of the operating system. When the boot loader finds the boot image, the boot loader loads and transfers control to the kernel of the operating system. The boot loader includes predefined instructions defining how to start a load routine of the kernel of the operating system.
For the purposes of abstraction, when control is transferred to the kernel, the kernel is unaware that any other program executes on the computer system. In particular, the kernel assumes that the kernel is the only program on the computer system and thereby ignores the existence of the boot loader. Because the kernel assumes that the kernel is the only program executing on the computer system, the kernel searches for the root file system to obtain the remaining operating system files.
The process by which the kernel searches for the root file system is operating system dependent. Specifically, the type of operating system defines how the kernel of the operating system searches for the root file system. When the kernel finds the root file system, the kernel mounts the root file system, thereby making the root file system accessible. At this stage, execution of the full features of the operating system begins.